package com.youdoneed.community.forum.entity;

import java.util.Date;
import java.util.List;

import com.youdoneed.community.group.entity.Forumgroup;
import com.youdoneed.community.media.entity.Forummediaresource;
import com.youdoneed.news.model.CmfPostsDtlVo;
import com.youdoneed.news.model.CmfPostsListVo;
import io.swagger.annotations.ApiModelProperty;

/**
 * 用户发表的论坛消息
 *
 * @author lid
 * @date 2017.6.5
 */
public class Forummessage {
    /**
     * 主键id
     */
    private String forumMsgId;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 用户昵称
     */
    private String nickName;

    /**
     * 用户头像
     */
    private String userHeadUrl;

    /**
     * 用户类型  可以是个人，广告，或者是业务号
     */
    private String userType;

    /**
     * 帖子类型，用于定义帖子前台展示的格式
     * 可以是发表猿圈，或者是问答
     * 消息类型(msg：帖子;shareMsg：分享的帖子;shareNews:分享的新闻；
     * shareGroup:分享的小组；shareVideo:分享的视频;
     * 音乐:music;  短视频：shortVideo，
     * <p>
     * )
     */
    private String msgType;

    /**
     * 帖子来源类型
     * 点赞帖：likePointMsg，群组贴:groupMsg， 附近帖：nearByMsg，手机通讯录好友帖phoneBookFriend：
     */
    private String msgSourceType;

    /**
     * 消息结构：{text, pic list , url GUI, url link}
     */
    private String msgStruct;

    /**
     * 消息内容
     */
    private String msgContent;

    /**
     * 发送位置经度
     */
    private Double userLongitude;

    /**
     * 发送位置纬度
     */
    private Double userLatitude;

    /**
     * 位置标签
     */
    private String postionLabel;

    /**
     * 职业
     */
    @ApiModelProperty("职业")
    private String jobName;

    @ApiModelProperty("国家")
    private String nation;

    @ApiModelProperty("省")
    private String province;

    @ApiModelProperty("市")
    private String city;

    @ApiModelProperty("区")
    private String district;


    /**
     * 发送人是否删除消息   0:未删除， 1：删除
     */
    private Integer msgDelete = 0;

    /**
     * 被举报次数
     */
    private Integer reportCount = 0;

    /**
     * 是否被平台禁止  0:未禁止，1：禁止
     */
    private Integer prohibit = 0;

    /**
     * 热度值
     */
    private Integer heat = 0;


    /**
     * 图片链接,逗号隔开
     */
    private String picUrl;

    private Date createDate;

    /**
     * 点赞数
     */
    private Integer likesCount = 0;

    /**
     * 分享数
     */
    private Integer shareCount = 0;

    /**
     * 包含的标签的id列表（发表帖子的时候作为参数传入）
     */
    private List<String> listMsgLabelIds;

    /**
     * 帖子包含的标签列表，在返回结果时获取
     */
    private List<Forummessagelabel> listForummessagelabel;

    /**
     * 当前论坛消息的评论数
     */
    private Integer commentCount = 0;

    /**
     * 当前论坛的评论list
     */
    private List<Forumcomment> listForumcomment;

    /**
     * 媒体资源
     */
    private List<Forummediaresource> listForummediaresource;

    /**
     * 点赞信息
     */
    private List<Forumlikespointrecord> listForumlikespointrecord;

    @ApiModelProperty("点赞帖的点赞信息描述，如A、B、C对D进行了点赞")
    private String likePointDescribe;

    /**
     * 公开状态：0：公开；1:好友可见；2：部分好友不可见；3：部分好友可见；4，指定群组；5：仅限自己
     *
     * @author lid
     * @date 2017.6.13
     */
    private Integer allowViewStatus = 0;

    /**
     * 第一张图片的缩放比例
     */
    private String firstImageScale;

    /**
     * 图片布局参数
     */
    private Integer imageLayoutType = 0;

    /**
     * 源id（分享的帖子、组、直播、新闻等内容的主键id）
     */
    private String sourceId;

    /**
     * 是否包含标签（0，无标签，1有标签）
     */
    private Integer hasLabels = 0;

    /**
     * 分享的帖子
     */
    private Forummessage shareForummessage;

    /**
     * 分享的小组
     */
    private Forumgroup shareForumgroup;

    /**
     * 分享的新闻
     *//*
    private CmfPostsDtlVo cmfPostsDtlVo;*/

    /**
     * 用户关注的新闻
     */
    private CmfPostsListVo cmfPostsListVo;

    /**
     * 是否是小组贴!0:非小组贴；1:小组贴
     */
    private Integer isShowGroup = 0;

    /**
     * 是否点赞!0:未点赞，1：点赞
     */
    private Integer hasPraised = 0;

    /**
     * 翻译字段
     */
    private String msgLanguage;

    private String handlePerson;

    /**
     * 是否关注
     */
    private String isAttentioned = "no";

    @ApiModelProperty("是否推荐！0或者null：不推荐，1：推荐")
    private Integer recommand;

    @ApiModelProperty("手机通讯录保存的用户名字")
    private String contactName;

    @ApiModelProperty("是否是好友，0：不是好友，1：是好友")
    private Integer isFriend;

    public String getLikePointDescribe() {
        return likePointDescribe;
    }

    public void setLikePointDescribe(String likePointDescribe) {
        this.likePointDescribe = likePointDescribe;
    }

    public Integer getIsFriend() {
        return isFriend;
    }

    public void setIsFriend(Integer isFriend) {
        this.isFriend = isFriend;
    }

    public String getJobName() {
        return jobName;
    }

    public void setJobName(String jobName) {
        this.jobName = jobName;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public Integer getRecommand() {
        return recommand;
    }

    public void setRecommand(Integer recommand) {
        this.recommand = recommand;
    }

    public String getIsAttentioned() {
        return isAttentioned;
    }

    public void setIsAttentioned(String isAttentioned) {
        this.isAttentioned = isAttentioned;
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public Integer getAllowViewStatus() {
        return allowViewStatus;
    }

    public void setAllowViewStatus(Integer allowViewStatus) {
        this.allowViewStatus = allowViewStatus;
    }

    public String getForumMsgId() {
        return forumMsgId;
    }

    public void setForumMsgId(String forumMsgId) {
        this.forumMsgId = forumMsgId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getUserType() {
        return userType;
    }

    public void setUserType(String userType) {
        this.userType = userType;
    }

    public String getMsgType() {
        return msgType;
    }

    public void setMsgType(String msgType) {
        this.msgType = msgType;
    }

    public String getMsgStruct() {
        return msgStruct;
    }

    public void setMsgStruct(String msgStruct) {
        this.msgStruct = msgStruct;
    }

    public Double getUserLongitude() {
        return userLongitude;
    }

    public void setUserLongitude(Double userLongitude) {
        this.userLongitude = userLongitude;
    }

    public Double getUserLatitude() {
        return userLatitude;
    }

    public void setUserLatitude(Double userLatitude) {
        this.userLatitude = userLatitude;
    }

    public String getPostionLabel() {
        return postionLabel;
    }

    public void setPostionLabel(String postionLabel) {
        this.postionLabel = postionLabel;
    }

    public Integer getMsgDelete() {
        return msgDelete;
    }

    public void setMsgDelete(Integer msgDelete) {
        this.msgDelete = msgDelete;
    }

    public Integer getReportCount() {
        return reportCount;
    }

    public void setReportCount(Integer reportCount) {
        this.reportCount = reportCount;
    }

    public Integer getProhibit() {
        return prohibit;
    }

    public void setProhibit(Integer prohibit) {
        this.prohibit = prohibit;
    }

    public Integer getHeat() {
        return heat;
    }

    public void setHeat(Integer heat) {
        this.heat = heat;
    }

    public String getPicUrl() {
        return picUrl;
    }

    public void setPicUrl(String picUrl) {
        this.picUrl = picUrl;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Integer getLikesCount() {
        return likesCount;
    }

    public void setLikesCount(Integer likesCount) {
        this.likesCount = likesCount;
    }

    public Integer getCommentCount() {
        return commentCount;
    }

    public void setCommentCount(Integer commentCount) {
        this.commentCount = commentCount;
    }

    public List<Forumcomment> getListForumcomment() {
        return listForumcomment;
    }

    public void setListForumcomment(List<Forumcomment> listForumcomment) {
        this.listForumcomment = listForumcomment;
    }

    public String getMsgContent() {
        return msgContent;
    }

    public void setMsgContent(String msgContent) {
        this.msgContent = msgContent;
    }

    public List<String> getListMsgLabelIds() {
        return listMsgLabelIds;
    }

    public void setListMsgLabelIds(List<String> listMsgLabelIds) {
        this.listMsgLabelIds = listMsgLabelIds;
    }

    public List<Forummessagelabel> getListForummessagelabel() {
        return listForummessagelabel;
    }

    public void setListForummessagelabel(List<Forummessagelabel> listForummessagelabel) {
        this.listForummessagelabel = listForummessagelabel;
    }

    public String getFirstImageScale() {
        return firstImageScale;
    }

    public void setFirstImageScale(String firstImageScale) {
        this.firstImageScale = firstImageScale;
    }

    public Integer getImageLayoutType() {
        return imageLayoutType;
    }

    public void setImageLayoutType(Integer imageLayoutType) {
        this.imageLayoutType = imageLayoutType;
    }

    public List<Forummediaresource> getListForummediaresource() {
        return listForummediaresource;
    }

    public void setListForummediaresource(List<Forummediaresource> listForummediaresource) {
        this.listForummediaresource = listForummediaresource;
    }

    public List<Forumlikespointrecord> getListForumlikespointrecord() {
        return listForumlikespointrecord;
    }

    public void setListForumlikespointrecord(List<Forumlikespointrecord> listForumlikespointrecord) {
        this.listForumlikespointrecord = listForumlikespointrecord;
    }

    public Forummessage getShareForummessage() {
        return shareForummessage;
    }

    public void setShareForummessage(Forummessage shareForummessage) {
        this.shareForummessage = shareForummessage;
    }

    public Forumgroup getShareForumgroup() {
        return shareForumgroup;
    }

    public void setShareForumgroup(Forumgroup shareForumgroup) {
        this.shareForumgroup = shareForumgroup;
    }

	/*public CmfPostsDtlVo getCmfPostsDtlVo() {
        return cmfPostsDtlVo;
	}

	public void setCmfPostsDtlVo(CmfPostsDtlVo cmfPostsDtlVo) {
		this.cmfPostsDtlVo = cmfPostsDtlVo;
	}*/

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getUserHeadUrl() {
        return userHeadUrl;
    }

    public void setUserHeadUrl(String userHeadUrl) {
        this.userHeadUrl = userHeadUrl;
    }

    public Integer getShareCount() {
        return shareCount;
    }

    public void setShareCount(Integer shareCount) {
        this.shareCount = shareCount;
    }

    public Integer getIsShowGroup() {
        return isShowGroup;
    }

    public void setIsShowGroup(Integer isShowGroup) {
        this.isShowGroup = isShowGroup;
    }

    public Integer getHasPraised() {
        return hasPraised;
    }

    public void setHasPraised(Integer hasPraised) {
        this.hasPraised = hasPraised;
    }

    public Integer getHasLabels() {
        return hasLabels;
    }

    public void setHasLabels(Integer hasLabels) {
        this.hasLabels = hasLabels;
    }

    public CmfPostsListVo getCmfPostsListVo() {
        return cmfPostsListVo;
    }

    public void setCmfPostsListVo(CmfPostsListVo cmfPostsListVo) {
        this.cmfPostsListVo = cmfPostsListVo;
    }

    public String getMsgSourceType() {
        return msgSourceType;
    }

    public void setMsgSourceType(String msgSourceType) {
        this.msgSourceType = msgSourceType;
    }

    public String getHandlePerson() {
        return handlePerson;
    }

    public void setHandlePerson(String handlePerson) {
        this.handlePerson = handlePerson;
    }

    public String getMsgLanguage() {
        return msgLanguage;
    }

    public void setMsgLanguage(String msgLanguage) {
        this.msgLanguage = msgLanguage;
    }

    public String getNation() {
        return nation;
    }

    public void setNation(String nation) {
        this.nation = nation;
    }

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public String getDistrict() {
        return district;
    }

    public void setDistrict(String district) {
        this.district = district;
    }
}